package trunk.view;

import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import trunk.control.UsuarioControlador;
import trunk.model.BancoDeClientes;
import trunk.model.BancoDeConvidados;

@SuppressWarnings("serial")
public class TelaCompromisso extends JFrame{
	private TopPanel topPanel;
	private DetalhesPanel detalhesPanel;
	private AnexosPanel anexosPanel;
	private ConvidadosPanel convidadosPanel;
	private JButton salvarBotao;
	private JButton descartarBotao;

	public TelaCompromisso(String titulo, UsuarioControlador controlador) {
		super(titulo);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setExtendedState(JFrame.MAXIMIZED_BOTH);
		setResizable(false);

		topPanel = new TopPanel(controlador);
		convidadosPanel = new ConvidadosPanel(controlador);
		detalhesPanel = new DetalhesPanel(controlador);
		anexosPanel = new AnexosPanel(controlador);

		salvarBotao = new JButton();
		salvarBotao.setText("Salvar");
		salvarBotao.addActionListener(controlador);

		descartarBotao = new JButton();
		descartarBotao.setText("Descartar");
		descartarBotao.addActionListener(controlador);

		javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
		getContentPane().setLayout(layout);
		layout.setHorizontalGroup(
				layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
				.addGroup(layout.createSequentialGroup()
						.addContainerGap()
						.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
								.addComponent(anexosPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
								.addComponent(detalhesPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
								.addComponent(topPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
								.addComponent(convidadosPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
								.addGroup(layout.createSequentialGroup()
										.addGap(97, 97, 97)
										.addComponent(salvarBotao, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
										.addGap(18, 18, 18)
										.addComponent(descartarBotao, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)))
										.addContainerGap())
		);
		layout.setVerticalGroup(
				layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
				.addGroup(layout.createSequentialGroup()
						.addContainerGap()
						.addComponent(topPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
						.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
						.addComponent(detalhesPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
						.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
						.addComponent(anexosPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
						.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
						.addComponent(convidadosPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
						.addGap(18, 18, 18)
						.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
								.addComponent(descartarBotao)
								.addComponent(salvarBotao))
								.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
		);

		pack();
		setLocationRelativeTo(null);
		setVisible(true);
	}

	public JButton getSalvarBotao() {
		return salvarBotao;
	}

	public JButton getDescartarBotao() {
		return descartarBotao;
	}

	public JFormattedTextField getDataFimCampo() {
		return topPanel.getDataFimCampo();
	}

	public JFormattedTextField getDataInicioCampo() {
		return topPanel.getDataInicioCampo();
	}

	public JFormattedTextField getHoraFimCampo() {
		return topPanel.getHoraFimCampo();
	}

	public JFormattedTextField getHoraInicioCampo() {
		return topPanel.getHoraInicioCampo();
	}

	public JTextField getTituloCampo() {
		return topPanel.getTituloCampo();
	}

	public JTextArea getDescricaoCampo() {
		return detalhesPanel.getDescricaoCampo();
	}

	public JTable getConvidadosTabela() {
		return convidadosPanel.getConvidadosTabela();
	}

	public JButton getConvidarBotao() {
		return convidadosPanel.getConvidarBotao();
	}

	public JTextField getLocalCampo() {
		return detalhesPanel.getLocalCampo();
	}

	public JButton getAnexoBotao(){
		return anexosPanel.getAnexarButton();

	}
	
	public BancoDeConvidados getConvidados(){
		return convidadosPanel.getConvidados();
	}

	public void setAnexo1Campo(String anexoCampo){         
                
                anexosPanel.setAnexo1Campo(anexoCampo);        
	}
	
	public void setConvidados(BancoDeConvidados convidados){
		convidadosPanel.setConvidados(convidados);
	}
	
	public void setContent(String titulo, String dataInicio, String horaInicio,
			String dataFim, String horaFim, String local, String descricao,
			BancoDeConvidados convidados){
		topPanel.setTituloCampo(titulo);
		topPanel.setDataInicio(dataInicio);
		topPanel.setHoraInicio(horaInicio);
		topPanel.setDataFim(dataFim);
		topPanel.setHoraFim(horaFim);
		detalhesPanel.setLocal(local);
		detalhesPanel.setDescricao(descricao);
		//TODO Fazer anexos
		convidadosPanel.setConvidados(convidados);
	}
}
